home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 8763 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  2.0 KB

  1. Path: erich.triumf.ca!bennett
  2. From: bennett@erich.triumf.ca (P.Bennett)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: How to make this get_time function work ?
  5. Date: 5 Mar 1996 22:03 PST
  6. Organization: TRIUMF: Tri-University Meson Facility
  7. Distribution: world
  8. Message-ID: <5MAR199622034283@erich.triumf.ca>
  9. References: <4hhjct$3og@idefix.eunet.fi>
  10. NNTP-Posting-Host: erich.triumf.ca
  11. News-Software: VAX/VMS VNEWS 1.50    
  12.  
  13. In article <4hhjct$3og@idefix.eunet.fi>, mtg@neste.com writes...
  14. ...
  15. >int get_time() {
  16. >        time_t t=time(NULL);
  17. >        struct tm *tp=localtime(&t);
  18. >        char time_str[STRING_LENGTH]={0}, str[STRING_LENGTH]={0};
  19. >        strftime(time_str, STRING_LENGTH, "%Y%m%d%H%M%S", tp);
  20. >        sprintf(str,"%s",time_str);
  21. >/*        printf("%s",str); */
  22. >    return str;
  23. >}
  24.  
  25.  
  26. >With gcc I get the following error messages:
  27. >.../test.c: In function `get_time':
  28. >.../test.c:15: warning: return makes integer from pointer without a cast
  29.  
  30. Quite reasonable - If you lie to the compiler, it will get it's revenge :-)
  31. You _said_ that get_time() returns an int, then  you try to return a char * -
  32. what do you expect the compiler to say?  Declare the function as
  33.     char *get_time()
  34. if you want to return a string.
  35.  
  36. >.../test.c:15: warning: function returns address of local variable
  37.  
  38. Yes, it does - str[] is a local variable, and goes out of scope when the
  39. function ends, so you cannot depend on it continuing to exist.  You could
  40. declare it as static - then it will not be destroyed when the function exits,
  41. and you can safely use a pointer to it outside the function.
  42.  
  43. Peter Bennett VE7CEI                | Vessels shall be deemed to be in sight
  44. Internet: bennett@triumf.ca         | of one another only when one can be
  45. Packet: ve7cei@ve7kit.#vanc.bc.ca   | observed visually from the other
  46. TRIUMF, Vancouver, B.C., Canada     |                          ColRegs 3(k)
  47. GPS and NMEA info and programs: ftp://sundae.triumf.ca/pub/peter/index.html
  48. or: ftp://ftp-i2.informatik.rwth-aachen.de/pub/arnd/GPS/peter/index.html
  49.  
  50.